package book.nettyinaction.ch05;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;

import java.nio.charset.Charset;

public class Demo013ReadAndWrite {

    public static void main(String[] args) {
        Charset utf8 = Charset.forName("UTF-8");

        // 创建一个新的 ByteBuf 以保存给定字符串的字节
        ByteBuf buf = Unpooled.copiedBuffer("Netty in Action rocks!", utf8);

        // 打印第一个字符`N`
        System.out.println( (char) buf.readByte() );

        // 存储当前的 readerIndex
        int readerIndex = buf.readerIndex();

        // 存储当前的 writerIndex
        int writerIndex = buf.writerIndex();

        // 将字符`?`追加到缓冲区
        buf.writeByte( (byte)'?' );

        assert readerIndex == buf.readerIndex();
        // true : 因为 writeByte() 方法移动了 writerIndex
        assert writerIndex != buf.writerIndex();
    }
}
